iT邦幫忙

2026 iThome 鐵人賽

DAY 8
0
AI Engineering

從呼叫 API 到打造 Gateway:LLM 工程化 30 天系列 第 8

Day 08:Chain-of-Thought:讓模型寫下推理過程

  • 分享至 

  • xImage
  •  

Day 8:Chain-of-Thought:讓模型寫下推理過程

昨天的範例舉的是分類這種一步到位的任務。但遇到需要多步驟推理的問題——例如數學計算、邏輯推理、需要拆解步驟的規劃,如果直接叫模型給答案,常常會得到一個看起來很篤定,實則不對的結果。這時候需要的技巧叫 Chain-of-Thought(CoT,思維鏈)。

為什麼「直接問答案」容易出錯

LLM 生成回應的方式是一個 token 接一個 token 往下產生,前面產生的內容會影響後面的生成。如果你要求它直接給答案,它就得在還沒有經過任何中間推導的情況下,一次到位地產出結果,遇到需要多步驟邏輯的問題,這種一步到位的猜測很容易出錯。

CoT 的做法很直覺:讓模型把中間的推理過程「寫出來」,再導向最後的答案。因為前面寫出來的推理步驟會成為後面生成的依據,等於讓模型寫出算式,而不是直接寫出答案。

最簡單的 CoT:一句指令

import os
import anthropic

client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": "一個班級有 32 人,其中 3/8 是男生,女生比男生多幾人?請一步一步推理,最後給出答案。",
        }
    ],
)

print(response.content[0].text)

光是加上「請一步一步推理」這句話,就能讓模型把運算過程攤開來寫,而不是直接跳答案。推理過程本身也可以成為驗證過程與除錯的依據。

更進階:few-shot + CoT

你也可以把 Day 7 的 few-shot 技巧跟 CoT 合起來——範例本身就示範「怎麼一步步推理」,不只是給「輸入 → 答案」,而是給「輸入 → 推理過程 → 答案」。這種寫法在複雜任務上通常比單純一句「請一步一步推理」更穩定,代價當然是 prompt 更長。

提醒:現在的模型,推理能力可能已經內建了

值得注意的是,現在不少主流模型本身就有「延伸思考」(extended thinking)的能力,是模型層級的功能,不是單純靠 prompt 技巧導出推理過程。這種內建機制通常是透過 API 參數開關,而不是在 prompt 裡加一句「請一步一步想」。這塊在不同廠商、不同模型版本上的支援狀況跟參數寫法都不太一樣,實際使用的時候建議參考官方文件。

不管是靠 prompt 技巧引導,還是模型內建的推理機制,目的都是讓模型寫下「推導過程」,而不是直接產出答案。

CoT 的代價

推理過程本身會佔用不少 output token——你等於是花錢讓模型把「草稿」也生成出來。對簡單、不需要推理的任務(例如昨天的情緒分類),硬要加 CoT 容易導致 token 浪費、回應時間被拉長,沒有實質的好處。CoT 的使用時機,取決於任務本身的複雜度。

今日小結

今天分享了 CoT 的概念,用來增加模型答案的可靠性,避免過度相信模型的能力。

到目前為止,prompt 的優化都是憑我們的感覺在作調整,但優化只靠感覺是不可靠的,明天就來討論一下,如何系統化的比較 Prompt 之間的差異。


上一篇
Day 07:Zero-shot vs Few-shot:要不要先給模型看範例?
下一篇
Day 9:Prompt 版本管理與除錯:寫 prompt 不是一次就結束
系列文
從呼叫 API 到打造 Gateway:LLM 工程化 30 天22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言